/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dio.com.dao;

import dio.com.dao.conexao.AcessoCM;
import dio.com.model.bean.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Diogenes
 */
public class AnalisePendenciasDAO {

    PreparedStatement pstm;
    ResultSet rs;
    private String analisarPendencias = "SELECT I.NOME, ME.META, MO.VALOR, E.NOME_1"
            + " FROM `ged-contabli`.empresa_1 E"
            + " JOIN IMPOSTO I"
            + " LEFT JOIN MOVIMENTACOES MO"
            + " ON MO.EMPRESA_1_IDEMPRESA_PK_1 =  E.IDEMPRESA_PK_1"
            + " AND I.ID_IMPOSTO = MO.IMPOSTO_ID_IMPOSTO"
            + " AND MO.PERIODO_IDPERIODO = ?"
            + " LEFT JOIN META ME"
            + " ON ME.IMPOSTO_ID_IMPOSTO = I.ID_IMPOSTO"
            + " WHERE MO.VALOR IS NULL"
            + " ORDER BY E.NOME_1";     
    
    public List<Pendencia> AnalisarPendencias(Periodo p) {
        AcessoCM mysql = new AcessoCM();
        List<Pendencia> pendencias = new ArrayList<Pendencia>();
        try {
            pstm = mysql.conectar().prepareStatement(analisarPendencias);
            pstm.setInt(1, p.getId());
            rs = pstm.executeQuery();
            while (rs.next()) {
                Pendencia pendencia = new Pendencia();
                Imposto imposto = new Imposto();;
                Meta meta = new Meta();
                Movimento movimento = new Movimento();
                Empresa empresa = new Empresa();
                imposto.setNome(rs.getString(1));
                meta.setValorMeta(rs.getString(2));
                movimento.setValor(rs.getString(3));
                empresa.setNome(rs.getString(4));
                pendencia.setEmpresa(empresa);
                pendencia.setImposto(imposto);
                pendencia.setMeta(meta);
                pendencia.setMovimento(movimento);
                pendencias.add(pendencia);
            }
            mysql.commit();
            mysql.desconectar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return pendencias;
    }
}
